In a network, data packets may be processed by a plurality of processing elements or travel through a plurality of transmission paths. It is often desirable that data packets from a single flow, such as a transmission control protocol (TCP) flow, are processed or delivered in order. It is also desirable that data packets from all flows are distributed evenly to the processing elements or transmission paths such that no processing units or transmission paths are overloaded or congested.